#include <iostream>
#include <stdlib.h>
#include <string>
#include <string>
#include <fstream>
#include <sstream>

/* Llamadas valgrind */
#define CACHEGRIND "valgrind -q --tool=cachegrind --log-file=salidaValgrind --cachegrind-out-file=salidaCachegrind --D1="
#define CG_ANNOTATE " && cg_annotate --auto=yes --show=Dr,Dw,D1mr,D1mw salidaCachegrind "

/* Archivos salida valgrind */
#define SALIDA_CACHEGRIND "salidaCachegrind"
#define SALIDA_VALGRIND "salidaValgrind"
#define SALIDA_CGANNOTATE "salidaCgannotate"
 
std::string intToString(int entero) {
    std::stringstream cadena("");
    cadena << entero;
    return cadena.str();
}

bool llamadaValgrind(std::string nombreArchivo, std::string parametros, std::string d1) {
  std::string valgrind(CACHEGRIND + d1);
  valgrind+= " ./" + nombreArchivo + " " + parametros;
  valgrind.append(CG_ANNOTATE);
  valgrind+= nombreArchivo + ".cpp > " + SALIDA_CGANNOTATE;
  return system(valgrind.c_str());
}
